package cn.edu.zjgsu.ito.service;

import java.util.List;

import org.springframework.web.multipart.MultipartFile;

import cn.edu.zjgsu.ito.exception.DateWrongException;
import cn.edu.zjgsu.ito.vo.OrderIdVo;
import cn.edu.zjgsu.ito.vo.RefundReasonShowVo;
import cn.edu.zjgsu.ito.vo.UserAddressVo;
import cn.edu.zjgsu.ito.vo.UserDemandOrderShowVo;
import cn.edu.zjgsu.ito.vo.UserInfomationSaveVo;
import cn.edu.zjgsu.ito.vo.UserInfomationShowVo;
import cn.edu.zjgsu.ito.vo.UserPurchaseOrderVo;


/**
 * 用户管理类接口
 * */
public interface UserManageServiceI {
	
	/**
	 * 用户查看求购信息
	 * @param userIdVo
	 * @return
	 */
	public List<UserDemandOrderShowVo> userDemandOrder(int userId);
	
	/**
	 * 用户查看代购信息
	 * @param userIdVo
	 * @return
	 */
	public List<UserPurchaseOrderVo> userPurchaseOrder(int userId);
	
	/**
	 * 根据用户传过来的个人信息，进行编辑，返回个人信息
	 * @param userInfomationVo 用户个人信息
	 * @return 用户个人信息
	 * @throws DateWrongException 日期格式不正确
	 */
	public UserInfomationSaveVo editUserInfomation(UserInfomationSaveVo userInfomationSaveVo,int userId) throws DateWrongException;

	/**
	 * 根据用户传过来的id，返回个人信息
	 * @param userIdVo 用户id
	 * @return 用户个人信息
	 */
	public UserInfomationShowVo getInfomation(int userId);

	/**
	 * 根据用户传过来的id，返回用户地址信息
	 * @param userIdVo
	 * @return
	 */
	public List<UserAddressVo> getAddress(int userId);

	/**
	 * 根据用户传过来的信息，添加用户地址信息
	 * 返回地址信息
	 * @param userAddressVo
	 * @return
	 */
	public List<UserAddressVo> addAddress(UserAddressVo userAddressVo);

	/**
	 * 根据地址id，删除对应地址信息
	 * 返回地址信息
	 * @param userDeleteAddressVo
	 * @return
	 */
	public List<UserAddressVo> deleteAddress(
			UserAddressVo userAddressVo);

	
	/**
	 * 根据地址id，更新对应地址信息
	 * 返回地址信息
	 * @param userAddressVo
	 * @return
	 */
	public List<cn.edu.zjgsu.ito.vo.UserAddressVo> updateAddress(
			UserAddressVo userAddressVo);

	/**
	 * 获取地址详细信息
	 * @param addressId
	 * @return
	 */
	public UserAddressVo getAddressMessage(int addressId);

	/**
	 * 头像上传
	 * @param path
	 */
	public String headPortraitUpload(MultipartFile file,String path,int userId);

	/**
	 * 图片批量上传
	 * @param mu
	 * @param path
	 * @return
	 */
	public String imageUpload(MultipartFile mu, String path,int temp);

	/**
	 * 用户查看订单的退款理由
	 * @param orderIdVo
	 * @return
	 */
	public RefundReasonShowVo lookRefund(OrderIdVo orderIdVo);

	/**
	 * 搜索我的订单
	 * @param temp
	 * @param userId
	 * @return
	 */
	public List<UserDemandOrderShowVo> userDemandOrderSelectBy(String temp,
			int userId);

	/**
	 * 搜索
	 * @param temp
	 * @param userId
	 * @return
	 */
	public List<UserPurchaseOrderVo> userPurchaseOrderSelectBy(String temp,
			int userId);

	/**
	 * 筛选我的求购订单
	 * @param temp
	 * @param userId
	 * @return
	 */
	public List<UserDemandOrderShowVo> userChooseDemandOrder(int temp,
			int userId);

	/**
	 * 用户筛选我的代购信息
	 * @param temp
	 * @param userId
	 * @return
	 */
	public List<UserPurchaseOrderVo> userChoosePurchaseOrder(int temp,
			int userId);

	/**
	 * 用户修改密码
	 * @param userId
	 * @param password
	 */
	public void changePassword(int userId, String password);

	
	/**
	 * 用户查看自己发布的具体信息详情
	 * @param demandIdVo
	 * @return
	 *//*
	public DemandOrderMessageVo userDemandOrderMessage(DemandIdVo demandIdVo);

	*//**
	 * 用户查看自己代购的详细信息
	 * @param orderIdVo
	 *//*
	public DemandOrderMessageVo userPurchaseOrderMessage(OrderIdVo orderIdVo);
	*/
	

	
}
